package com.example.fiction.ui.activity.home;

import android.Manifest;
import android.arch.lifecycle.ViewModelProviders;
import android.os.Bundle;
import android.util.Log;

import com.example.fiction.BR;
import com.example.fiction.R;
import com.example.fiction.databinding.ActivityHomeBinding;
import com.example.fiction.utils.PermissionUtils;
import com.example.fiction.utils.StatusBarUtil;

import me.goldze.mvvmhabit.base.BaseActivity;

/**
 * 主页面
 * auth: 姚鸿杰
 * time: 2019/3/19 20:31
 **/
public class HomeActivity extends BaseActivity<ActivityHomeBinding, HomeViewModel> {

    @Override
    public int initContentView(Bundle bundle) {
        return R.layout.activity_home;
    }

    @Override
    public int initVariableId() {
        return BR.viewModel;
    }

    @Override
    public HomeViewModel initViewModel() {
        //View持有ViewModel的引用，如果没有特殊业务处理，这个方法可以不重写
        return ViewModelProviders.of(this).get(HomeViewModel.class);
    }

    @Override
    public void initData() {
        super.initData();

        // 通过‘binding.id’ 获取控件实例
        viewModel.setFragment(getSupportFragmentManager(), binding.homeFragment.getId());
        viewModel.setOnNavigationItemSelectedListener(binding.navigation);

        //当FitsSystemWindows设置 true 时，会在屏幕最上方预留出状态栏高度的 padding
        StatusBarUtil.setRootViewFitsSystemWindows(this, true);
        //设置状态栏透明
        StatusBarUtil.setTranslucentStatus(this);
        //一般的手机的状态栏文字和图标都是白色的, 可如果你的应用也是纯白色的, 或导致状态栏文字看不清
        //所以如果你是这种情况,请使用以下代码, 设置状态使用深色文字图标风格, 否则你可以选择性注释掉这个if内容
        if (!StatusBarUtil.setStatusBarDarkTheme(this, true)) {
            //如果不支持设置深色风格 为了兼容总不能让状态栏白白的看不清, 于是设置一个状态栏颜色为半透明,
            //这样半透明+白=灰, 状态栏的文字能看得清
            StatusBarUtil.setStatusBarColor(this, 0x55000000);
        }
    }
}
